﻿using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Dot5Demo.Controls
{
    public interface IXTreeNode
    {
        string Text { get; set; }
        bool Checked { get; set; }
        object Owner { get; set; }
        IXTreeNodeCollection Nodes { get; }
        List<string> ExtraFilterProperties { get; set; }
    }

    public class XTreeNode : IXTreeNode
    {
        public XTreeNode()
        {
        }

        public object NodeData { get; set; }
        public string Text { get; set; }
        public bool Checked { get; set; }
        public object Owner { get; set; }

        public IXTreeNodeCollection Nodes { get; set; }

        public List<string> ExtraFilterProperties { get; set; }
    }

    public interface IXTreeNodeCollection : ICollection<IXTreeNode>, IEnumerable<IXTreeNode>, IEnumerable
    {
    }

    public class XTreeNodeCollection : Collection<IXTreeNode>, ICollection<IXTreeNode>, IEnumerable<IXTreeNode>, IEnumerable, IXTreeNodeCollection
    {
    }
}